﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Sisco.AplicacionEscritorio.Reporte.Plantillas.Equipo
{
    public partial class FormatoGeneral_Equipo : UserControl
    {
        public FormatoGeneral_Equipo()
        {
            InitializeComponent();
        }

        private void chkMarca_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMarca.Checked)
            {
                txtMarca.Enabled = true;
            }
            else
            {
                txtMarca.ResetText();
                txtMarca.Enabled = false;
            }
        }

        private void chkModelo_CheckedChanged(object sender, EventArgs e)
        {
            if (chkModelo.Checked)
            {
                txtModelo.Enabled = true;
            }
            else
            {
                txtModelo.ResetText();
                txtModelo.Enabled = false;
            }
        }

        private void chkSerie_CheckedChanged(object sender, EventArgs e)
        {
            if (chkSerie.Checked)
            {
                txtSerie.Enabled = true;
            }
            else
            {
                txtSerie.ResetText();
                txtSerie.Enabled = false;
            }
        }

        private void chkTipo_CheckedChanged(object sender, EventArgs e)
        {
            if (chkTipo.Checked)
            {
                cmbTipoEquipo.Enabled = true;
                ListarTipoEquipo();
            }
            else
            {
                cmbTipoEquipo.Enabled = false;
                cmbTipoEquipo.DataSource = null;
            }
        }

        private void ListarTipoEquipo()
        {
            LogicaNegocio.TipoEquipoBLL tipoEquipoBLL = new LogicaNegocio.TipoEquipoBLL();
            cmbTipoEquipo.DataSource = tipoEquipoBLL.Listar();
            cmbTipoEquipo.ValueMember = "ID";
            cmbTipoEquipo.DisplayMember = "NOMBRETIPO";
            cmbTipoEquipo.SelectedIndex = -1;
        }

        private void chkEstado_CheckedChanged(object sender, EventArgs e)
        {
            if (chkEstado.Checked)
            {
                cmbEstado.Enabled = true;
                ListarEstadoEquipo();
            }
            else
            {
                cmbEstado.Enabled = false;
                cmbEstado.DataSource = null;
            }
        }

        private void ListarEstadoEquipo()
        {
            LogicaNegocio.EstadoEquipoBLL estadoEquipoBLL = new LogicaNegocio.EstadoEquipoBLL();
            cmbEstado.DataSource = estadoEquipoBLL.Listar();
            cmbEstado.ValueMember = "ID";
            cmbEstado.DisplayMember = "NOMBREESTADO";
            cmbEstado.SelectedIndex = -1;
        }

        private void FormatoGeneral_Equipo_Load(object sender, EventArgs e)
        {
            ListarTipoEquipo();
            ListarEstadoEquipo();
        }

        private void btnRepBuscar_Click(object sender, EventArgs e)
        {
            string marca = string.IsNullOrWhiteSpace(txtMarca.Text) ? txtMarca.Text.Trim() : null;
            string modelo = string.IsNullOrWhiteSpace(txtModelo.Text) ? txtModelo.Text.Trim() : null;
            string serie = string.IsNullOrWhiteSpace(txtSerie.Text) ? txtSerie.Text.Trim() : null;
            int? tipoEquipo = cmbTipoEquipo.SelectedIndex >= 0 ? int.Parse(cmbTipoEquipo.SelectedValue.ToString()) : new Nullable<int>();
            int? estadoEquipo = cmbEstado.SelectedIndex >= 0 ? int.Parse(cmbEstado.SelectedValue.ToString()) : new Nullable<int>();

            LogicaNegocio.EquipoBLL equipoBLL = new LogicaNegocio.EquipoBLL();
            DataTable dTable = equipoBLL.Rep_ListarEquipo(marca, modelo, serie, tipoEquipo, estadoEquipo);

            FormularioReporte formReporte = this.ParentForm as FormularioReporte;

            if (formReporte != null)
            {
                formReporte.showRep_FormatoGeneral_Equipo(dTable);
            }
        }
    }
}
